I started this blog a while back, with a domain name that had stuck in my head since forever. When I finally bought the domain, I was flung between a multitude of choices to host my blog. I forayed into the unknown, battling one "stack" after another; my path winding between things known and unknown to me, until I reached back where I started - Static site generators.
I will give reasons for my excursion- sometimes subjective and sometimes objective. And while the same things might not apply to everyone, I will try to sell you the idea of a static site generator, and hope you start your next blog with these words of inspiration. Let's begin.
When I started out the whole process of blogging, I was particularly interested in one thing only - price. I wanted the whole blog to be free - forever. A little bit of googling landed me on a Quora post, which led to the exploration of Github Pages. I will be honest here, I had already hosted a site using github pages, on one of their ".github.io" domains, but this time it was different, I wanted to create a whole design and implement it on GitHub. Enter - Jekyll.
Jekyll is the default static site generator for GitHub. When you create a Jekyll website on github, it will automatically manage the build and deployment stuff for you so you really don't have to worry about anything. Googling about jekyll themes leads you to a wonderful selection of themes, which are eye-candy. But being a "designer" and a "developer", I decided to go against the norm and create my own theme. That turned out to be, well, different than I had thought it would.
Coming from a python-based background did me no favors, as I could not figure stuff out easily in the beginning. The error messages were cryptic, and I am really sorry to say this, but Jekyll has one of the worst theme developer documentations out there. I indeed finished making a theme for Jekyll and published it on GitHub on which my other blog lives to this day, thinking I will post more (sorry sandeshbhusal.github.io).
Golang always enticed me, although I never got around coding just "hello world" and "Create a webserver with GoLang" thingies using it. When I looked elsewhere, repulsed by the horrendous documentation of Jekyll, I came across hugo - and immediately found my first love for the second time. Coding was nonexistent, the documentation was clear, concise and to-the-point and the community was wonderful. What more could one ask for! I wrote some and then some lines of HTML, CSS; binding them together to create a perfect theme, until...
Suddenly, Hugo started to feel very much like a forced way of doing things. Hugo has these certain attributes, which make doing things "your way" very difficult, and to say the least, the short affair would not last.
When I was mulling over the next big thing to host my perfect blog with absolutely no content on, I came across an article in my organization's magazine website. Holy smokes, the article was good and so was the website! I quickly looked up the source to find that it was hosted on Ghost. A little bit of further research led to an amazing installation on Heroku, and GCP. The only problem with ghost was poverty.
You see, if you have not yet forgotten about the original constraint I had started out with, it was that the website needed to be free - forever. When I found that I would have to pay for the Ghost Hosting (on heroku and GCP, you pay for network egress and DNS services even if you use a free instance/dyno), I was sad. Really sad. Ghost and my blog would've been a perfect match, but I was too poor.
"Curiosity Killed the Cat" says the old adage. But in my case, "Curisioty about the perfect blog hosting method killed all my time". And when my sister finally slapped my wrist for wasting my time too much, I relented and went with wordpress.
The first solution was 000webhost. I tried their free tier "Just to try things out". But I don't know if it's a bug or a problem on my end, they just kept deleting my blog time and again. Even when it had 0 posts and I had not done anything to go against their content guidelines. Also, the website would pop up back normally after some time, which was kind of spooky and I lost all faith in "Free Wordpress Hosting". There are the ones like HelioHost and AlwaysData which are more reliable.
I went with AlwaysData to host my one-of-a-kind blog. The only problem with Wordpress was - I did not know any php. I could download, curate and edit themes all day long, but they would not really be "my theme" or give a glimpse of "my blog", until I put some effort and coded them myself. And a old 22 year old programmer who dances at the behest of the instant gratification monkey, I decided to ditch reading php and just continue writing the blog.
Wordpress worked great for some time, until eventually, the lack of being able to "customize" it drained me and I came crawling back - to static site generation.
I was now in a familiar place. The smell of confusion and nostalgia soon sent me back to a familiar path - Google. I googled the heck out of blog hosting alternatives, and came across NuxtJS, NextJS, Gatsby... Let's just say, there were too many "Do things our way", or "We do ReactJS" frameworks out there. The same reason I had stopped working with Hugo were becoming prominent once again.
Then I discovered 11ty.
To say the least, my life has changed forever. I wrote this whole blog in two days' time (including the time to design, code and write this blog article too) while being sick and in midst of Dashain. 11ty is easy would be an understatement. There are so few constructs to the whole process, that your mind just flows. I wrote a simple script to search my site using lunrjs and added disqus for the commenting system. Lo and behold! My site was completed.
11ty and my blog have been married for 2 whole days now and I don't think I am ever going back.
Maybe, yes. As I stated at the starting of this post, most of the opinions in this article are solely mine, sometimes objective and most of them subjective. You might think "This guy is so wrong! He never looked at the feature X of this framework Y! Moron!" And you might be absolutely right also! Most of the reasons I have presented are subjective, and you should not feel deterred if you have decided to go with any of the alternatives I have listed above.
However, there's a couple of questions I asked myself before starting out this blog.
Needless to say, 11ty checked all these boxes.
I feel that blogging should be a natural process. But unlike living and breathing, where you really don't care about how the lung works, even though Mrs. Sharma taught you about it in the 9th grade, us developers like to know how stuff works under the hood. And if you came from a Linux Ricing background, then you understand that innate urge to "make something your own" by changing it, re-changing it and changing it some more. That's why, I think I will stick with 11ty for the forseeable future.